feat(sdk-coin-iota): add MPCv2 signed hot recovery support - #9426
feat(sdk-coin-iota): add MPCv2 signed hot recovery support#9426Marzooqa wants to merge 1 commit into
Conversation
Detects MPCv1 vs MPCv2 keycard format in Iota.recover() and dispatches signing accordingly, mirroring the SOL implementation. MPCv2 signatures are wrapped in the existing SUI-style envelope (0x00 flag + 64-byte sig + 32-byte pubkey). TICKET: WCI-1226
089d472 to
ed08c7c
Compare
|
Claude finished @Marzooqa's task —— View job Code Review for MPCv2 Signed Hot Recovery Support ✅Todo List:
OverviewThis PR successfully adds MPCv2 signed hot recovery support to the IOTA coin implementation. The changes follow the established pattern from SOL implementation and provide good backwards compatibility with MPCv1. ✅ Positive AspectsClean Architecture & Pattern Consistency
Comprehensive Test Coverage
Security & Error Handling
🔍 Technical Implementation DetailsSignature Format -
|
Summary
Iota.recover(), alongside the existing MPCv1 path (auto-detected, no new params)EDDSAUtils.isEddsaMpcV1SigningMaterialand dispatches signing accordingly, mirroring the SOL implementation (WCI-398)EDDSAUtils.getEddsaMpcV2RecoveryKeySharesFromReducedKey+EDDSAUtils.signRecoveryEddsaMPCv2, validatescommonKeyChainagainstbitgoKey, and wraps the resulting 64-byte signature in the existing SUI-style envelope (0x00flag byte + 64-byte sig + 32-byte pubkey)recoverConsolidations()MPCv2 support is out of scope, tracked separately in WCI-1235Test plan
{ serializedTx, scanIndex }with correctly-formed signature envelopebitgoKeyvs keycardcommonKeyChain— throwsyarn unit-test(251 passing),tsc --noEmit,eslintall cleanTICKET: WCI-1226
🤖 Generated with Claude Code